package models

import "time"

// CouponRule 优惠券规则配置表
type CouponRule struct {
	Id          int64     `json:"id" xorm:"pk autoincr"`
	Name        string    `json:"name" xorm:"varchar(50) not null comment('优惠券名称')"`
	Type        string    `json:"type" xorm:"varchar(20) not null comment('优惠券类型')"`
	Value       int64     `json:"value" xorm:"not null comment('优惠券面值(分)')"`
	MinAmount   int64     `json:"min_amount" xorm:"not null default 0 comment('最低使用金额(分)')"`
	ValidDays   int       `json:"valid_days" xorm:"not null comment('有效天数')"`
	DayLimit    int       `json:"day_limit" xorm:"not null default 0 comment('每日限领次数，0表示不限')"`
	TotalLimit  int       `json:"total_limit" xorm:"not null default 0 comment('总限领次数，0表示不限')"`
	ProductType string    `json:"product_type" xorm:"varchar(20) not null default 'all' comment('适用商品类型：all-全部,vip-会员商品')"`
	Status      int       `json:"status" xorm:"not null default 1 comment('状态：1启用 0禁用')"`
	Description string    `json:"description" xorm:"varchar(255) not null default '' comment('使用说明')"`
	UpdateTime  time.Time `json:"update_time" xorm:"not null updated comment('更新时间')"`
	CreateTime  time.Time `json:"create_time" xorm:"not null created comment('创建时间')"`
}

// TableName 表名
func (CouponRule) TableName() string {
	return "coupon_rule"
}

// 优惠券类型常量
const (
	CouponTypeDiscount = "discount" // 折扣券
	CouponTypeAmount   = "amount"   // 满减券
)

// 商品类型常量
const (
	ProductTypeAll = "all" // 全部商品
	ProductTypeVip = "vip" // 会员商品
)
